package com.csweimei.rentmanagementtreasure.http;


import com.csweimei.rentmanagementtreasure.http.entity.AuthBean;
import com.csweimei.rentmanagementtreasure.http.entity.AutoBean;
import com.csweimei.rentmanagementtreasure.http.entity.BaseResult;
import com.csweimei.rentmanagementtreasure.http.entity.BindEntEntity;
import com.csweimei.rentmanagementtreasure.http.entity.BrokerCustomBean;
import com.csweimei.rentmanagementtreasure.http.entity.BrokerDailyBean;
import com.csweimei.rentmanagementtreasure.http.entity.BrokerFollowupBean;
import com.csweimei.rentmanagementtreasure.http.entity.BrokerHousingBean;
import com.csweimei.rentmanagementtreasure.http.entity.BrokerInfoBean;
import com.csweimei.rentmanagementtreasure.http.entity.CodeListBean;
import com.csweimei.rentmanagementtreasure.http.entity.CompanyBean;
import com.csweimei.rentmanagementtreasure.http.entity.CompanyInfoHomeBean;
import com.csweimei.rentmanagementtreasure.http.entity.CountBean;
import com.csweimei.rentmanagementtreasure.http.entity.CustomerBean;
import com.csweimei.rentmanagementtreasure.http.entity.CustomerCenterBean;
import com.csweimei.rentmanagementtreasure.http.entity.CustomerDetailBean;
import com.csweimei.rentmanagementtreasure.http.entity.CustomerFollowBean;
import com.csweimei.rentmanagementtreasure.http.entity.DailyListBean;
import com.csweimei.rentmanagementtreasure.http.entity.DealHouseListBean;
import com.csweimei.rentmanagementtreasure.http.entity.EntDealChatBean;
import com.csweimei.rentmanagementtreasure.http.entity.EntHomeDailyBean;
import com.csweimei.rentmanagementtreasure.http.entity.EntScheduleBean;
import com.csweimei.rentmanagementtreasure.http.entity.FollowListBean;
import com.csweimei.rentmanagementtreasure.http.entity.HouseDetailHzBean;
import com.csweimei.rentmanagementtreasure.http.entity.HouseDetailZzBean;
import com.csweimei.rentmanagementtreasure.http.entity.HouseFollowRecordBean;
import com.csweimei.rentmanagementtreasure.http.entity.HouseHistoryBean;
import com.csweimei.rentmanagementtreasure.http.entity.HouseInfoDetailBean;
import com.csweimei.rentmanagementtreasure.http.entity.HouseListBean;
import com.csweimei.rentmanagementtreasure.http.entity.HouseListEntBean;
import com.csweimei.rentmanagementtreasure.http.entity.JoinListBean;
import com.csweimei.rentmanagementtreasure.http.entity.LeaseDetailBean;
import com.csweimei.rentmanagementtreasure.http.entity.LeaseListBean;
import com.csweimei.rentmanagementtreasure.http.entity.LoginBean;
import com.csweimei.rentmanagementtreasure.http.entity.LookHouseBean;
import com.csweimei.rentmanagementtreasure.http.entity.MessageDetailBean;
import com.csweimei.rentmanagementtreasure.http.entity.MessageListBean;
import com.csweimei.rentmanagementtreasure.http.entity.NoticeMsgBean;
import com.csweimei.rentmanagementtreasure.http.entity.QuarterEntity;
import com.csweimei.rentmanagementtreasure.http.entity.SearchEntBean;
import com.csweimei.rentmanagementtreasure.http.entity.SearchStaffBean;
import com.csweimei.rentmanagementtreasure.http.entity.StaffListBean;
import com.csweimei.rentmanagementtreasure.http.entity.TabOne2Bean;
import com.csweimei.rentmanagementtreasure.http.entity.TabOneBean;
import com.csweimei.rentmanagementtreasure.http.entity.TabOneScheduleBean;
import com.csweimei.rentmanagementtreasure.http.entity.TabThreeBean;
import com.csweimei.rentmanagementtreasure.http.entity.TabTwoScheduleListBean;
import com.csweimei.rentmanagementtreasure.http.entity.UserInfoEntity;
import com.csweimei.rentmanagementtreasure.http.entity.VipBean;
import com.csweimei.rentmanagementtreasure.http.entity.WXBean;
import com.csweimei.rentmanagementtreasure.http.entity.WorkScheduleListBean;
import com.csweimei.rentmanagementtreasure.utils.uploadUtils.QiNiuYunBean;

import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;

/**
 * Created by goldze on 2017/6/15.
 */

public interface ApiService {

    String GT_QQ_LOGIN = "http://api.csweimei.cn/app/pub_qq_login";
    String GT_WECHAT_LOGIN = "http://api.csweimei.cn/app/pub_wechat_login";
    String GT_QQ_OUT_LOGIN = "http://api.csweimei.cn/app/user_qq_logout";
    String GT_WECHAT_OUT_LOGIN = "http://api.csweimei.cn/app/user_wechat_logout";

    //获取个人信息
    @POST("app/zgb.qq_login")
    Observable<LoginBean> qq_login(@Body RequestBody body);

    //获取个人信息
    @POST("app/zgb.wechet_login")
    Observable<LoginBean> wechet_login(@Body RequestBody body);


    //获取个人信息
    @POST("app/zgb.edituserinfo")
    Observable<BaseResult> edituserinfo(@Body RequestBody body);
    //获取个人信息
    @POST("app/zgb.userinfo")
    Observable<UserInfoEntity> userinfo(@Body RequestBody body);

    //查看个人认证信息
    @POST("app/zgb.seachauth")
    Observable<AuthBean> seachauth(@Body RequestBody body);

    //查询是否绑定公司与绑定公司信息
    @POST("app/zgb.isbind")
    Observable<BindEntEntity> isbindEnt(@Body RequestBody body);

    //注销用户
    @POST("app/zgb.logoff")
    Observable<BaseResult> logoff(@Body RequestBody body);


    //查询小区
    @POST("app/zgb.get_quarters")
    Observable<QuarterEntity> get_quarters(@Body RequestBody body);

    //查询小区
    @POST("app/zgb.add_quarters")
    Observable<BaseResult> add_quarters(@Body RequestBody body);

    // 七牛云获取token接口
    @GET("http://dubbing.csweimei.cn/upload/Token")
    Observable<QiNiuYunBean> getToken();

    //添加房源/整租
    @POST("app/zgb.addwhole")
    Observable<BaseResult> addwhole(@Body RequestBody body);

    //添加房源/合租
    @POST("app/zgb.add_shared")
    Observable<BaseResult> addcotenancy(@Body RequestBody body);

    //房源/整租详情
    @POST("app/zgb.wholeinfo")
    Observable<HouseInfoDetailBean> wholeinfo(@Body RequestBody body);

    //房源/整租详情--房源详情
    @POST("app/zgb.allhouser_list")
    Observable<HouseDetailZzBean> allhouser_data(@Body RequestBody body);

    //房源/合租详情
    @POST("app/zgb.new_cotenancyinfo")
    Observable<HouseDetailHzBean> cotenancyinfo(@Body RequestBody body);


    //房源列表
    @POST("app/zgb.housing_list")
    Observable<HouseListBean> housinglist(@Body RequestBody body);

    //设置房源状态
    @POST("app/zgb.housingstatic")
    Observable<BaseResult> housingstatic(@Body RequestBody body);

    //删除房源
    @POST("app/zgb.delete_housing")
    Observable<BaseResult> delete_housing(@Body RequestBody body);

    //编辑房源图片和详细地址
    @POST("app/zgb.edit_housing")
    Observable<BaseResult> edit_housing(@Body RequestBody body);


    //查询房源跟进记录列表
    @POST("app/zgb.follow_housing")
    Observable<HouseFollowRecordBean> follow_housing(@Body RequestBody body);

    //查询客户跟进记录列表
    @POST("app/zgb.followdetails")
    Observable<CustomerFollowBean> followdetails(@Body RequestBody body);

    //待跟进/跟进记录列表
    @POST("app/zgb.followup")
    Observable<FollowListBean> followup(@Body RequestBody body);
    //添加跟进记录
    @POST("app/zgb.addfollow")
    Observable<BaseResult> addfollow(@Body RequestBody body);

    //租约管理列表
    @POST("app/zgb.leaselist")
    Observable<LeaseListBean> leaselist(@Body RequestBody body);

    //删除合同
    @POST("app/zgb.deletelease")
    Observable<BaseResult> deletelease(@Body RequestBody body);

    //添加租约合同
    @POST("app/zgb.addlease")
    Observable<BaseResult> addlease(@Body RequestBody body);

    //历史租约列表
    @POST("app/zgb.history_leaselist")
    Observable<HouseHistoryBean> history_leaselist(@Body RequestBody body);

    //租约信息详情
    @POST("app/zgb.lease_detail")
    Observable<LeaseDetailBean> lease_detail(@Body RequestBody body);


    //添加或编辑客户资料
    @POST("app/zgb.addcustom")
    Observable<BaseResult> addcustom(@Body RequestBody body);


    //删除客户
    @POST("app/zgb.deletecustom")
    Observable<BaseResult> deletecustom(@Body RequestBody body);



    //查询客户与客户资料列表
    @POST("app/zgb.seachcustom")
    Observable<CustomerBean> seachcustom(@Body RequestBody body);


    //客户详情
    @POST("app/zgb.customdetails")
    Observable<CustomerDetailBean> customdetails(@Body RequestBody body);


    //看房意向数据列表
    @POST("app/zgb.showingslist")
    Observable<LookHouseBean> showingslist(@Body RequestBody body);


    //自动匹配房源
    @POST("app/zgb.mateinfo")
    Observable<AutoBean> mateinfo(@Body RequestBody body);



    //待收租与将到期数据列表
    @POST("app/zgb.beleaselist")
    Observable<TabOneBean> beleaselist(@Body RequestBody body);

    //提醒与收租文案
    @POST("app/zgb.copywriting")
    Observable<NoticeMsgBean> copywriting(@Body RequestBody body);

    //首页(统计跟进记录/统计信息提醒)
    @POST("app/zgb.homerecords")
    Observable<TabOne2Bean> homerecords(@Body RequestBody body);

    //首页(我的日程)
    @POST("app/zgb.myschedule")
    Observable<TabOneScheduleBean> myschedule(@Body RequestBody body);


    //添加日程
    @POST("app/zgb.addschedule")
    Observable<BaseResult> addschedule(@Body RequestBody body);

    //日程列表
    @POST("app/zgb.schedulelist")
    Observable<TabTwoScheduleListBean> schedulelist(@Body RequestBody body);

    //消息中心
    @POST("app/zgb.message_details")
    Observable<TabThreeBean> message_center(@Body RequestBody body);

    //消息中心
    @POST("app/zgb.messageinfo")
    Observable<MessageDetailBean> messageinfo(@Body RequestBody body);


    //消息列表(根据消息类型返回消息列表)
    @POST("app/zgb.messagelist")
    Observable<MessageListBean> messagelist(@Body RequestBody body);

    //查看消息，修改消息中心-1
    @POST("app/zgb.edit_message")
    Observable<BaseResult> edit_message(@Body RequestBody body);


    //查询公司
    @POST("app/zgb.seachcompany")
    Observable<SearchEntBean> seachcompany(@Body RequestBody body);

    //日报列表
    @POST("app/zgb.dailylist")
    Observable<DailyListBean> dailylist(@Body RequestBody body);

    //写日报
    @POST("app/zgb.adddaily")
    Observable<BaseResult> adddaily(@Body RequestBody body);

    //申请加入公司
    @POST("app/zgb.addbroker")
    Observable<BaseResult> addbroker(@Body RequestBody body);

    //日报数据详情
    @POST("app/zgb.dailydetails")
    Observable<BaseResult> dailydetails(@Body RequestBody body);

    //退出企业
    @POST("app/zgb.exit_company")
    Observable<BaseResult> exit_company(@Body RequestBody body);



    /*---------------------------------企业端-------------------------------------------*/

    //是否申请企业认证
    @POST("app/zgb.getcompany_info")
    Observable<CompanyBean> getcompany_info(@Body RequestBody body);

    //查看企业认证信息
    @POST("app/zgb.companyinfo")
    Observable<BaseResult> companyinfo(@Body RequestBody body);


    //新增企业认证
    @POST("app/zgb.addcompanyauth")
    Observable<BaseResult> addcompanyauth(@Body RequestBody body);

    //企业/首页(成交房源(统计图数据))
    @POST("app/zgb.dealchat")
    Observable<EntDealChatBean> dealchat(@Body RequestBody body);

    //日报记录(所有经纪人数据)
    @POST("app/zgb.companydaily")
    Observable<EntHomeDailyBean> companydaily(@Body RequestBody body);


    //工作日程(当前周所有经纪人数据)
    @POST("app/zgb.allschedule")
    Observable<EntScheduleBean> allschedule(@Body RequestBody body);

    //搜索
    @POST("app/zgb.companyseek")
    Observable<BaseResult> companyseek(@Body RequestBody body);

    //房源详情列表
    @POST("app/zgb.allhousing")
    Observable<HouseListEntBean> allhousing(@Body RequestBody body);

    //客户资料列表
    @POST("app/zgb.customcenter")
    Observable<CustomerCenterBean> customcenter(@Body RequestBody body);

    //成交房源列表
    @POST("app/zgb.deallist")
    Observable<DealHouseListBean> deallist(@Body RequestBody body);

    //工作日程列表
    @POST("app/zgb.workschedule")
    Observable<WorkScheduleListBean> workschedule(@Body RequestBody body);

    //审核加入企业处理
    @POST("app/zgb.handle")
    Observable<BaseResult> handle(@Body RequestBody body);


    //申请加入企业数据列表
    @POST("app/zgb.joincompanylist")
    Observable<JoinListBean> joincompanylist(@Body RequestBody body);


    //我的/侧滑展开
    @POST("app/zgb.myinfo")
    Observable<CompanyInfoHomeBean> myinfo(@Body RequestBody body);

    //房源/整租详情--房源详情
    @POST("app/zgb.allhouser_data")
    Observable<BaseResult> allhouser_data_ent(@Body RequestBody body);

    //员工管理
    @POST("app/zgb.stafflist")
    Observable<StaffListBean> stafflist(@Body RequestBody body);

    //经纪人名片（跟进）
    @POST("app/zgb.brokerfollowup")
    Observable<BrokerFollowupBean> brokerfollowup(@Body RequestBody body);

    //经纪人名片（日报）
    @POST("app/zgb.brokerdaily")
    Observable<BrokerDailyBean> brokerdaily(@Body RequestBody body);

    //经纪人名片（客户）
    @POST("app/zgb.brokercustom")
    Observable<BrokerCustomBean> brokercustom(@Body RequestBody body);

    //名片(个人信息)
    @POST("app/zgb.brokeruser")
    Observable<BrokerInfoBean> brokeruser(@Body RequestBody body);

    //经纪人名片（房源）
    @POST("app/zgb.brokerhousingdata")
    Observable<BrokerHousingBean> brokerhousingdata(@Body RequestBody body);

    //删除经纪人
    @POST("app/zgb.deletebroker")
    Observable<BaseResult> deletebroker(@Body RequestBody body);

    //企业主动邀请经纪人
    @POST("app/zgb.invitebroker")
    Observable<BaseResult> invitebroker(@Body RequestBody body);

    //搜索经纪人
    @POST("app/zgb.seachbroker")
    Observable<SearchStaffBean> seachbroker(@Body RequestBody body);



    //查询个人/企业会员信息
    @POST("app/zgb.seach_vip")
    Observable<VipBean> seach_vip(@Body RequestBody body);


    //我的兑换码列表
    @POST("app/zgb.mycode")
    Observable<CodeListBean> mycode(@Body RequestBody body);

    //兑换码 兑换会员
    @POST("app/zgb.usecode")
    Observable<BaseResult> usecode(@Body RequestBody body);


    //删除兑换码
    @POST("app/zgb.delete_code")
    Observable<BaseResult> delete_code(@Body RequestBody body);


    //赠送兑换码
    @POST("app/zgb.deliver_code")
    Observable<BaseResult> deliver_code(@Body RequestBody body);


    //微信下单接口
    @POST("http://study.csweimei/zgbWeChet/VipPayCreateOrder")
    Observable<WXBean> WeChetPay(@Body RequestBody body);


    //房源数据
    @POST("app/zgb.housing_item")
    Observable<CountBean> housing_item(@Body RequestBody body);




}


